﻿namespace Softserve.Pottery.Manufacturing
{
    using System;
    using Pottery.Manufacturing.Contracts;
    using Softserve.Pottery.Infrastructure;
    using Softserve.Pottery.Infrastructure.Interfaces;

    public class ManufacturingController : DomainControllerBase, IManufacturingScopeContract
    {
        #region Construcors from base();

        public ManufacturingController()
            : base(new ManufacturingRepository())
        {

        }

        public ManufacturingController(IRepository context)
            : base(context) { }

        public ManufacturingController(IRepository context, IMessenger bridge)
            : base(context, bridge, null) { }

        public ManufacturingController(IRepository context, IMessenger bridge, IServiceProvider provider) : base(context, bridge, provider) { }

        #endregion

        protected override void Dispose(bool disposeManaged)
        {
            ///TODO: Implement code of release resources here
        }

        #region ITeamContract Members

        public Domains.Team CreateNewTeam(int id, int masterId, int performance, double defectPercent)
        {
            throw new NotImplementedException();
        }

        public Domains.Team SetNewPerformance(int performance, Domains.Team item)
        {
            throw new NotImplementedException();
        }

        public Domains.Team SetNewDfectPercent(double defectPercent, Domains.Team item)
        {
            throw new NotImplementedException();
        }

        #endregion

        #region IPlanContract Members

        public Domains.Plan CreatePlan(int teamId, DateTime dateBegin, System.Collections.Generic.List<Domains.Batch> batches, DateTime dateFinished = default(DateTime))
        {
            throw new NotImplementedException();
        }

        #endregion

        #region IBatchContract Members

        public Domains.Batch CreateBatch(int id, DateTime dateCreated, int masterId, System.Collections.Generic.List<int> itemCollection, MaterialType material, System.Collections.Generic.List<int> approvementListId)
        {
            throw new NotImplementedException();
        }

        #endregion

        #region IApprovementContract Members

        public Domains.Approvement CreateApprovement(int id, int MasterId, Domains.Batch batch, ProductionStage currentStage, System.Collections.Generic.List<int> productsId, int quantityAfterModeling = default(int), int quantityAfterRoasting = default(int), int quantityAfterPainting = default(int))
        {
            throw new NotImplementedException();
        }

        public Domains.Approvement EditQuantityAfterModeling(int quantityAfterModeling, Domains.Approvement item)
        {
            throw new NotImplementedException();
        }

        public Domains.Approvement EditQuantityAfterRoasting(int quantityAfterRoasting, Domains.Approvement item)
        {
            throw new NotImplementedException();
        }

        public Domains.Approvement EditQuantityAfterPainting(int quantityAfterPainting, Domains.Approvement item)
        {
            throw new NotImplementedException();
        }

        public Domains.Approvement Approve(Domains.Approvement item)
        {
            throw new NotImplementedException();
        }

        #endregion
    }
}
